<%@ page pageEncoding="UTF-8" %>
<%@ page import="java.util.*" %>
<%@ page import="qingzhou.console.login.LoginManager" %>
<%
	String statusCode = String.valueOf(response.getStatus());
	String errorMsg = response.getHeader(LoginManager.RESPONSE_HEADER_MSG_KEY);
	if (errorMsg == null || errorMsg.trim().isEmpty()) {
		switch (response.getStatus()) {
			case 403:
				errorMsg = "Permission denied.";
				break;
			case 404:
				errorMsg = "Resource not found.";
				break;
			case 500:
				errorMsg = "An error occurred, please check the log for details.";
				break;
		}
	}
	String[] errors = {"error0", "error1", "error2"};
	int i = 0;
	Map<String, String> errorMap = new HashMap<>();
	StringBuilder builder = new StringBuilder();

	builder.append("<style>")
			.append("svg {position:absolute;top:50%;left:50%;margin-top:-250px;margin-left:-400px;}")
			.append(".msg-box {height: 200px;width: 380px;position: absolute;top: 50%;left: 50%;margin-top: -180px;margin-left: 50px;font-family: Roboto;font-weight: 300;}")
			.append(".msg-box h1 {font-size: 180px;line-height: 46px;margin-bottom: 40px;}")
			.append("#hexagon-1 , #hexagon-2 , #hexagon-3 , #hexagon-4 , #hexagon-5 {animation: float 1s infinite ease-in-out alternate;}")
			.append("#hexagon-2 {animation-delay: .2s;}#hexagon-3 {animation-delay: .4s;}#hexagon-4 {animation-delay: .6s;}#hexagon-5 {animation-delay: .8s;}")
			.append("@keyframes float {100% {transform: translateY(20px);}}")
			.append("@media (max-width: 450px) {")
			.append("svg {position: absolute;top: 50%;left: 50%;margin-top: -250px;margin-left: -190px;}")
			.append(".msg-box {top: 50%;left: 50%;margin-top: -100px;margin-left: -190px;text-align: center;}}")
			.append("</style>");
	builder.append(System.lineSeparator()).append("<div>")
			.append("<svg width=\"380px\" height=\"500px\" viewBox=\"0 0 837 1045\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:sketch=\"http://www.bohemiancoding.com/sketch/ns\">")
			.append("<g id=\"Page-1\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\" sketch:type=\"MSPage\">")
			.append("<path d=\"M353,9 L626.664028,170 L626.664028,487 L353,642 L79.3359724,487 L79.3359724,170 L353,9 Z\" id=\"hexagon-1\" stroke=\"#007FB2\" stroke-width=\"6\" sketch:type=\"MSShapeGroup\"></path>")
			.append("<path d=\"M78.5,529 L147,569.186414 L147,648.311216 L78.5,687 L10,648.311216 L10,569.186414 L78.5,529 Z\" id=\"hexagon-2\" stroke=\"#EF4A5B\" stroke-width=\"6\" sketch:type=\"MSShapeGroup\"></path>")
			.append("<path d=\"M773,186 L827,217.538705 L827,279.636651 L773,310 L719,279.636651 L719,217.538705 L773,186 Z\" id=\"hexagon-3\" stroke=\"#795D9C\" stroke-width=\"6\" sketch:type=\"MSShapeGroup\"></path>")
			.append("<path d=\"M639,529 L773,607.846761 L773,763.091627 L639,839 L505,763.091627 L505,607.846761 L639,529 Z\" id=\"hexagon-4\" stroke=\"#F2773F\" stroke-width=\"6\" sketch:type=\"MSShapeGroup\"></path>")
			.append("<path d=\"M281,801 L383,861.025276 L383,979.21169 L281,1037 L179,979.21169 L179,861.025276 L281,801 Z\" id=\"hexagon-5\" stroke=\"#36B455\" stroke-width=\"6\" sketch:type=\"MSShapeGroup\"></path>")
			.append("svg {position: absolute;top: 50%;left: 50%;margin-top: -250px;margin-left: -190px;}")
			.append("</g></svg>")
			.append("<div class=\"msg-box\">")
			.append(String.format("<h1>%s</h1>", statusCode))
			.append("<br>")
			.append(String.format("<p style=\"font-size: 30px;\">%s</p>", errorMsg))
			//.append(String.format("<div style=\"font-size: 20px;\">%s</div>", errorMsg))
			.append("</div></div>");
	errorMap.put(errors[i++], builder.toString());
	builder.setLength(0);

	builder.append("<style>")
			.append("#spaceman {animation: enlarge 3.0s infinite;}")
			.append("@keyframes enlarge {0% {transform: scale(0.95) rotate(0deg);}50% {transform: scale(1.0) rotate(5deg);}100% {transform: scale(0.95) rotate(0deg);}}")
			.append("</style>")
			.append("<div style=\"width:100%; height: 100%; overflow: hidden;\">")
			.append("<div style=\"width: 30%; height: 30%; position:absolute;top:50%;left:36%;margin-top:-250px;margin-left:-400px;\">")
			.append("<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 800 600\">")
			.append("<g><defs><clipPath id=\"GlassClip\">")
			.append("<path d=\"M380.857,346.164c-1.247,4.651-4.668,8.421-9.196,10.06c-9.332,3.377-26.2,7.817-42.301,3.5s-28.485-16.599-34.877-24.192c-3.101-3.684-4.177-8.66-2.93-13.311l7.453-27.798c0.756-2.82,3.181-4.868,6.088-5.13c6.755-0.61,20.546-0.608,41.785,5.087s33.181,12.591,38.725,16.498c2.387,1.682,3.461,4.668,2.705,7.488L380.857,346.164z\" />")
			.append("</clipPath><clipPath id=\"cordClip\"><rect width=\"800\" height=\"600\" /></clipPath></defs>")
			.append("<g id=\"planet\"><circle fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-miterlimit=\"10\" cx=\"572.859\" cy=\"108.803\" r=\"90.788\" />")
			.append("<circle id=\"craterBig\" fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-miterlimit=\"10\" cx=\"548.891\" cy=\"62.319\" r=\"13.074\" />")
			.append("<circle id=\"craterSmall\" fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-miterlimit=\"10\" cx=\"591.743\" cy=\"158.918\" r=\"7.989\" />")
			.append("<path id=\"ring\" fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" d=\"M476.562,101.461c-30.404,2.164-49.691,4.221-49.691,8.007c0,6.853,63.166,12.408,141.085,12.408s141.085-5.555,141.085-12.408c0-3.378-15.347-4.988-40.243-7.225\" />")
			.append("<path id=\"ringShadow\" opacity=\"0.5\" fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" d=\"M483.985,127.43c23.462,1.531,52.515,2.436,83.972,2.436c36.069,0,68.978-1.19,93.922-3.149\" />")
			.append("</g><g id=\"stars\"><g id=\"starsBig\"><g><line fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" x1=\"518.07\" y1=\"245.375\" x2=\"518.07\" y2=\"266.581\" /><line fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" x1=\"508.129\" y1=\"255.978\" x2=\"528.01\" y2=\"255.978\" /></g>")
			.append("<g><line fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" x1=\"154.55\" y1=\"231.391\" x2=\"154.55\" y2=\"252.598\" /><line fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" x1=\"144.609\" y1=\"241.995\" x2=\"164.49\" y2=\"241.995\" /></g>")
			.append("<g><line fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" x1=\"320.135\" y1=\"132.746\" x2=\"320.135\" y2=\"153.952\" /><line fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" x1=\"310.194\" y1=\"143.349\" x2=\"330.075\" y2=\"143.349\" /></g>")
			.append("<g><line fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" x1=\"200.67\" y1=\"483.11\" x2=\"200.67\" y2=\"504.316\" /><line fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" x1=\"210.611\" y1=\"493.713\" x2=\"190.73\" y2=\"493.713\" /></g>")
			.append("</g><g id=\"starsSmall\"><g><line fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" x1=\"432.173\" y1=\"380.52\" x2=\"432.173\" y2=\"391.83\" /><line fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" x1=\"426.871\" y1=\"386.175\" x2=\"437.474\" y2=\"386.175\" /></g>")
			.append("<g><line fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" x1=\"489.555\" y1=\"299.765\" x2=\"489.555\" y2=\"308.124\" /><line fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" x1=\"485.636\" y1=\"303.945\" x2=\"493.473\" y2=\"303.945\" /></g>")
			.append("<g><line fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" x1=\"231.468\" y1=\"291.009\" x2=\"231.468\" y2=\"299.369\" /><line fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" x1=\"227.55\" y1=\"295.189\" x2=\"235.387\" y2=\"295.189\" /></g>")
			.append("<g><line fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" x1=\"244.032\" y1=\"547.539\" x2=\"244.032\" y2=\"555.898\" /><line fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" x1=\"247.95\" y1=\"551.719\" x2=\"240.113\" y2=\"551.719\" /></g>")
			.append("<g><line fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" x1=\"186.359\" y1=\"406.967\" x2=\"186.359\" y2=\"415.326\" /><line fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" x1=\"190.277\" y1=\"411.146\" x2=\"182.44\" y2=\"411.146\" /></g>")
			.append("<g><line fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" x1=\"480.296\" y1=\"406.967\" x2=\"480.296\" y2=\"415.326\" /><line fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" x1=\"484.215\" y1=\"411.146\" x2=\"476.378\" y2=\"411.146\" /></g>")
			.append("</g><g id=\"circlesBig\"><circle fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" cx=\"588.977\" cy=\"255.978\" r=\"7.952\" /><circle fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" cx=\"450.066\" cy=\"320.259\" r=\"7.952\" />")
			.append("<circle fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" cx=\"168.303\" cy=\"353.753\" r=\"7.952\" /><circle fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" cx=\"429.522\" cy=\"201.185\" r=\"7.952\" /><circle fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" cx=\"200.67\" cy=\"176.313\" r=\"7.952\" />")
			.append("<circle fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" cx=\"133.343\" cy=\"477.014\" r=\"7.952\" /><circle fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" cx=\"283.521\" cy=\"568.033\" r=\"7.952\" /><circle fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" cx=\"413.618\" cy=\"482.387\" r=\"7.952\" /></g>")
			.append("<g id=\"circlesSmall\"><circle fill=\"#0E0620\" cx=\"549.879\" cy=\"296.402\" r=\"2.651\" /><circle fill=\"#0E0620\" cx=\"253.29\" cy=\"229.24\" r=\"2.651\" /><circle fill=\"#0E0620\" cx=\"434.824\" cy=\"263.931\" r=\"2.651\" /><circle fill=\"#0E0620\" cx=\"183.708\" cy=\"544.176\" r=\"2.651\" />")
			.append("<circle fill=\"#0E0620\" cx=\"382.515\" cy=\"530.923\" r=\"2.651\" /><circle fill=\"#0E0620\" cx=\"130.693\" cy=\"305.608\" r=\"2.651\" /><circle fill=\"#0E0620\" cx=\"480.296\" cy=\"477.014\" r=\"2.651\" /></g>")
			.append("</g><g id=\"spaceman\" clip-path=\"url(cordClip)\">")
			.append("<path id=\"cord\" fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-miterlimit=\"10\" d=\"M273.813,410.969c0,0-54.527,39.501-115.34,38.218c-2.28-0.048-4.926-0.241-7.841-0.548c-68.038-7.178-134.288-43.963-167.33-103.87c-0.908-1.646-1.793-3.3-2.654-4.964c-18.395-35.511-37.259-83.385-32.075-118.817\" />")
			.append("<path id=\"backpack\" fill=\"#FFFFFF\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-miterlimit=\"10\" d=\"M338.164,454.689l-64.726-17.353c-11.086-2.972-17.664-14.369-14.692-25.455l15.694-58.537c3.889-14.504,18.799-23.11,33.303-19.221l52.349,14.035c14.504,3.889,23.11,18.799,19.221,33.303l-15.694,58.537C360.647,451.083,349.251,457.661,338.164,454.689z\" />")
			.append("<g id=\"antenna\"><line fill=\"#FFFFFF\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-miterlimit=\"10\" x1=\"323.396\" y1=\"236.625\" x2=\"295.285\" y2=\"353.753\" /><circle fill=\"#FFFFFF\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-miterlimit=\"10\" cx=\"323.666\" cy=\"235.617\" r=\"6.375\" /></g>")
			.append("<g id=\"armR\"><path fill=\"#FFFFFF\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-miterlimit=\"10\" d=\"M360.633,363.039c1.352,1.061,4.91,5.056,5.824,6.634l27.874,47.634c3.855,6.649,1.59,15.164-5.059,19.02l0,0c-6.649,3.855-15.164,1.59-19.02-5.059l-5.603-9.663\" />")
			.append("<path fill=\"#FFFFFF\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-miterlimit=\"10\" d=\"M388.762,434.677c5.234-3.039,7.731-8.966,6.678-14.594c2.344,1.343,4.383,3.289,5.837,5.793c4.411,7.596,1.829,17.33-5.767,21.741c-7.596,4.411-17.33,1.829-21.741-5.767c-1.754-3.021-2.817-5.818-2.484-9.046C375.625,437.355,383.087,437.973,388.762,434.677z\" /></g>")
			.append("<g id=\"armL\"><path fill=\"#FFFFFF\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-miterlimit=\"10\" d=\"M301.301,347.66c-1.702,0.242-5.91,1.627-7.492,2.536l-47.965,27.301c-6.664,3.829-8.963,12.335-5.134,18.999h0c3.829,6.664,12.335,8.963,18.999,5.134l9.685-5.564\" />")
			.append("<path fill=\"#FFFFFF\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-miterlimit=\"10\" d=\"M241.978,395.324c-3.012-5.25-2.209-11.631,1.518-15.977c-2.701-0.009-5.44,0.656-7.952,2.096c-7.619,4.371-10.253,14.09-5.883,21.71c4.371,7.619,14.09,10.253,21.709,5.883c3.03-1.738,5.35-3.628,6.676-6.59C252.013,404.214,245.243,401.017,241.978,395.324z\" /></g>")
			.append("<g id=\"body\"><path fill=\"#FFFFFF\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-miterlimit=\"10\" d=\"M353.351,365.387c-7.948,1.263-16.249,0.929-24.48-1.278c-8.232-2.207-15.586-6.07-21.836-11.14c-17.004,4.207-31.269,17.289-36.128,35.411l-1.374,5.123c-7.112,26.525,8.617,53.791,35.13,60.899l0,0c26.513,7.108,53.771-8.632,60.883-35.158l1.374-5.123C371.778,395.999,365.971,377.536,353.351,365.387z\" />")
			.append("<path fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-miterlimit=\"10\" d=\"M269.678,394.912L269.678,394.912c26.3,20.643,59.654,29.585,93.106,25.724l2.419-0.114\" /></g>")
			.append("<g id=\"legs\"><g id=\"legR\"><path fill=\"#FFFFFF\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-miterlimit=\"10\" d=\"M312.957,456.734l-14.315,53.395c-1.896,7.07,2.299,14.338,9.37,16.234l0,0c7.07,1.896,14.338-2.299,16.234-9.37l17.838-66.534C333.451,455.886,323.526,457.387,312.957,456.734z\" />")
			.append("<line fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-miterlimit=\"10\" x1=\"304.883\" y1=\"486.849\" x2=\"330.487\" y2=\"493.713\" /></g>")
			.append("<g id=\"legL\"><path fill=\"#FFFFFF\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-miterlimit=\"10\" d=\"M296.315,452.273L282,505.667c-1.896,7.07-9.164,11.265-16.234,9.37l0,0c-7.07-1.896-11.265-9.164-9.37-16.234l17.838-66.534C278.993,441.286,286.836,447.55,296.315,452.273z\" />")
			.append("<line fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-miterlimit=\"10\" x1=\"262.638\" y1=\"475.522\" x2=\"288.241\" y2=\"482.387\" /></g>")
			.append("</g>")
			.append("<g id=\"head\"><ellipse transform=\"matrix(0.259 -0.9659 0.9659 0.259 -51.5445 563.2371)\" fill=\"#FFFFFF\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-miterlimit=\"10\" cx=\"341.295\" cy=\"315.211\" rx=\"61.961\" ry=\"60.305\" />")
			.append("<path id=\"headStripe\" fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-miterlimit=\"10\" d=\"M330.868,261.338c-7.929,1.72-15.381,5.246-21.799,10.246\" />")
			.append("<path fill=\"#FFFFFF\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-miterlimit=\"10\" d=\"M380.857,346.164c-1.247,4.651-4.668,8.421-9.196,10.06c-9.332,3.377-26.2,7.817-42.301,3.5s-28.485-16.599-34.877-24.192c-3.101-3.684-4.177-8.66-2.93-13.311l7.453-27.798c0.756-2.82,3.181-4.868,6.088-5.13c6.755-0.61,20.546-0.608,41.785,5.087s33.181,12.591,38.725,16.498c2.387,1.682,3.461,4.668,2.705,7.488L380.857,346.164z\" />")
			.append("<g clip-path=\"url(#GlassClip)\"><polygon id=\"glassShine\" fill=\"none\" stroke=\"#0E0620\" stroke-width=\"3\" stroke-miterlimit=\"10\" points=\"278.436,375.599 383.003,264.076 364.393,251.618 264.807,364.928\" /></g>")
			.append("</g></g></g></svg></div>")
			.append("<div style=\"width: 36%; height: 36%; position:absolute;top:25%;right:20%;\">")
			.append(String.format("<h1 style=\"font-size: 10.0em; font-weight: bold; margin: 15px 0px;\">%s</h1>", statusCode))
			.append(String.format("<br><h2 style=\"font-size: 2.0em; font-weight: 500;\">%s</h2>", errorMsg))
			//.append(String.format("<p>%s</p>", errorMsg))
			.append("</div></div>");
	errorMap.put(errors[i++], builder.toString());
	builder.setLength(0);

	builder.append("<style>")
			.append(".container { position:fixed; top:0; right:0; bottom:0; left:0; text-align:center; white-space:nowrap; overflow:auto;}")
			.append(".container:after { content:''; height:100%; display:inline-block; vertical-align:middle; }.container svg {animation: enlarge 3.0s infinite;}")
			.append("@keyframes enlarge {0% {transform: scale(1.0) rotate(0deg);}50% {transform: scale(1.15) rotate(5deg);}100% {transform: scale(1.0) rotate(0deg);}}")
			.append("</style>")
			.append("<div class=\"container\">")
			.append("<div style=\"display:inline-block; vertical-align:middle; background: white; border-radius: 10px; box-shadow: 6px 11px 41px -28px #a99de7; padding: 36px 36px;\">")
			.append("<div style=\"display:flex; justify-content:center; align-items:center;\">")
			.append("<svg width=\"160px\" height=\"160px\" enable-background=\"new 0 0 1353.398 1663.204\" viewBox=\"0 0 1353.398 1663.204\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:sketch=\"http://www.bohemiancoding.com/sketch/ns\">")
			.append("<path d=\"m1295 353.22c-116.73-263.44-350.84-336.02-629.86-319.36-35.765 2.137-31.835 49.62 4.187 45.363 12.476-1.475 130.48-5.316 206.73 5.851 281.99 41.301 421.83 297.27 405.79 422.79-10.004 78.281-9.323 83.499-55.149 179.66-115.35 242.05-362.3 363.08-504.42 356.94-60.247-2.601-219.29 9.783-408.26-106.87-47.458-29.299-89.22-65.749-130.82-102.42-96.04-84.665-117.84-174.2-109.42-288.68 7.266-98.824 26.028-110.19 46.675-114.82 141.77-31.802 138.73-39.218 132.11-20.15-53.374 153.64 0.717 294.88 166.56 300.55 127.43 4.357 286.44-210.73 225.19-334.27-5.121-10.329-11.906-7.391 129.63-7.405 10.615-1e-3 10.719 0.068 6.083 9.55-45.131 92.307-58 226.11 30.51 279.27 37.01 22.227 122.89 38.865 204.66 20.373 181.86-41.129 251.42-164.34 213.11-235.61-1.894-3.523-2.533-5.881 2.322-8.914 18.993-11.864 22.166-49.535-34.649-79.644-176.43-93.496-708.14-66.341-892.53-19.147-9.923 2.54-3.868-4.706-25.148-3.981-98.564 3.359 75.264-64.304 63.135-88.046-2.827-5.533-8.618-3.914-13.688-2.692-63.561 15.322-57.999 14.603-59.005 12.92 0 0 210.3-97.514 210.32-97.52 3.457-1.572 7.911-2.956 6.247-7.972-1.675-5.049-6.23-4.525-10.434-3.689-34.478 6.855-69.21 12.42-103.46 20.473-4.946 1.163-9.631 4.178-15.07 2.769 3.556-4.161 8.401-6.427 13.19-8.638 44.692-20.638 88.998-42.087 131.98-66.081 28.121-15.698 57.115 13.261 67.25-19.139 9.605-30.707-51.635-47.016-124.57-9.444-147.43 75.951-297.1 175.41-372.35 324.14-3.063 6.054-7.448 9.353-13.526 11.881-16.581 6.897-21.088 19.518-12.711 35.143 1.696 3.163 1.962 5.627 0.832 8.861-22.091 63.172-22.509 159.03-19.174 193.06 2.933 29.931 11.192 58.974 22.43 86.949 16.53 41.149 38.208 79.082 69.876 110.8 38.86 38.924 104.59 94.04 127.72 110.35 40.806 28.784 82.876 55.399 129.1 74.851 68.843 28.971 65.097 25.848 60.948 30.309-66.467 71.479-33.539 308.2-44.5 325.3-35.546 55.465 25.31 114.98 85.285 90.442 1.97-0.806 5.57-4.613 6.865 0.314 0.998 3.797-3.13 2.874-5.341 3.45-75.63 19.693-140.47 152.95-57.325 152.71 65.803-0.188 186.45 0.056 231.54-0.142 18.172-0.08 31.677-11.454 32.42-28.154 0.963-21.641-8.679-40.66-16.871-59.905-1.675-3.937-9.204-6.359-9.855-9.062 2.842-0.139 5.695-0.507 8.525-0.38 91.263 4.078 91.276 0.86 89.294 12.849-2.879 17.414-1.478 34.966-1.513 52.453-0.057 27.974 12.009 40.155 40.115 39.868 75.163-0.767 213.25 4.108 244.19-8.908 51.396-21.621-35.692-117.55-87.961-135.07 7.222-4.868 20.947-9.569 29.227-27.527 17.567-38.105-3.79-56.664 12.694-79.279 1.001-1.374 2.679-112.49-4.573-142.79-20.36-85.08-52.696-158.36-75.904-185.86-5.098-6.041 1.715-6.096 4.331-7.221 230.6-99.101 397.58-327.62 409.43-557.64 2.626-50.956-12.977-89.936-32.417-133.81zm-476.12 50.397c4.34-9.192 9.459-18.012 13.939-27.141 2.227-4.539 5.135-6.508 10.426-6.121 32.891 2.407 65.894 2.514 98.8 5.238 17.65 1.461 35.281 3.54 52.985 4.219 5.828 0.224 7.707 2.075 7.646 7.85-0.248 23.275-0.103 46.555-0.103 69.833h0.053c0 22.002-0.051 44.005 0.016 66.007 0.056 18.613 8.176 29.99 21.671 30.615 17.73 0.82 29.351-10.068 31.699-28.501 3.163-24.835 7.113-49.569 10.495-74.377 1.242-9.113 2.163-18.299 2.625-27.483 0.524-10.413-3.365-18.547-13.743-22.557-1.769-0.684-3.642-1.413-5.074-2.597-3.574-2.955-2.274-7.175-1.701-10.712 0.582-3.591 4.146-2.194 6.347-1.826 24.689 4.12 49.784 6.023 73.947 13.015 11.846 3.428 23.471 7.621 35.313 11.066 4.388 1.277 4.466 3.173 2.959 6.81-5.48 13.219-1.622 23.994 8.938 33.002 17.55 14.97 20.977 32.928 14.389 55.005-7.902 26.479-22.779 47.488-43.829 64.436-46.881 37.744-100.46 60.251-159.88 69.187-47.266 7.109-93.778 4.539-139.1-11.3-31.025-10.842-47.893-34.991-53.556-65.546-10.233-55.201 1.005-107.85 24.737-158.12zm-518.87 13.447c3.137-7.978 7.722-15.181 10.62-23.338 2.584-7.274 11.321-4.938 16.96-5.636 27.605-3.419 55.362-5.605 83.063-8.248 12.59-1.201 25.182-2.39 37.76-3.711 5.235-0.55 7.103 1.065 6.929 6.768-0.466 15.292-0.159 30.607-0.159 45.912-0.123 28.634-0.756 57.328 5.309 85.54 3.691 17.167 12.59 25.267 25.468 24.421 12.331-0.81 23.478-13.65 24.369-28.811 1.491-25.379 3.053-50.766 3.772-76.173 0.504-17.832 2.523-35.478 4.257-53.178 0.568-5.794 2.58-8.543 9.376-8.566 15.511-0.052 31.06 1.344 46.582-1.368 7.534-1.316 13.838 2.023 18.659 8.687 17.853 24.681 20.064 51.69 18.015 81.551-4.933 71.885-86.266 167.25-140.46 192.42-36.293 16.856-71.691 15.967-108.08 3.245-47.491-16.601-79.604-61.003-81.853-111.58-1.956-44 3.209-86.724 19.413-127.94zm-33.694-186.06c23.507-23.32 53.355-33.99 84.425-42.183 0.859-0.227 2.442-0.792 2.541 1.249-1.19 0.727-2.219 1.459-3.334 2.024-27.137 13.754-54.284 27.489-81.426 41.233-1.357 0.687-2.694 2.063-4.143 0.535-0.177-0.187 1.097-2.025 1.937-2.858zm-133.35 142.65c17.247-25.558 33.901-51.573 56.126-73.323 1.134-1.11 2.06-2.43 3.129-3.609 7.544-8.32 12.215-18.402 28.437-13.47 13.139 3.996 27.879-3.57 41.506-7.772 12.437-3.834 24.675-8.31 37.084-12.237 2.438-0.772 5.736-3.998 7.479-0.955 1.079 1.884-3.198 3.313-5.206 4.693-19.44 13.372-38.466 27.284-55.707 43.449-4.955 4.646-12.183 8.874-10.039 17.081 2.187 8.37 10.188 9.322 17.433 11.001 5.072 1.175 10.106 1.137 16.12 1.334 3.147 0.784 7.49-1.492 11.424 1.009-3.764 1.341-7.603 2.263-11.534 3.114-44.342 9.602-87.399 24.034-131.34 35.143-2.38 0.602-4.876 0.744-7.319 1.101-0.216-2.56 1.09-4.6 2.412-6.559zm511.47 1154.1c-12.135 4.934-17.159 14.577-14.145 27.191 0.296 1.239 0.692 2.456 0.929 3.705 1.219 6.396 7.724 14.262 3.946 18.269-3.237 3.434-12.624 1.228-19.292 1.243-27.414 0.066-54.829 0.028-82.244 0.028v-0.059c-31.24 0-62.484-0.294-93.716 0.186-8.927 0.137-8.504-2.815-5.598-9.201 8.094-17.792 20.195-32.352 35.178-44.635 7.882-6.461 16.99-9.823 27.283-9.75 6.378 0.046 12.78 0.053 18.979-1.717 12.982-3.707 24.963 2.511 37.229 4.353 29.951 4.496 59.969 6.53 90.168 7.134 2.323 0.047 4.85-0.902 7.009 0.817-1.908 0.813-3.804 1.655-5.726 2.436zm21.732-47.302c-17.473-0.609-34.99-0.709-52.402-2.104-21.162-1.695-42.336-3.436-63.319-7.156-10.085-1.788-16.888-6.299-20.892-15.675-5.171-12.11-8.103-24.83-9.344-37.767-4.056-42.26-1.556-84.664-1.973-127.01-0.031-3.124 1.144-6.241 1.498-9.391 1.575-14.016-5.933-25.947-16.708-26.702-18.321-1.284-27.471 6.474-28.913 23.116-2.865 33.066-1.089 66.173-1.597 99.257-0.164 10.685 0.1 10.499-9.871 6.031-15.771-7.068-22.516-19.889-22.936-36.32-0.439-17.201-0.098-34.421-0.098-58.207-1.633-29.416 1.131-65.352 2.407-101.26 1.337-37.619 8.113-74.514 29.529-106.97 1.587-2.405 2.343-5.067 2.651-8.041 1.31-12.661 1.59-13.176 13.384-9.343 27.64 8.983 49.284 27.231 69.702 46.978 31.381 30.349 55.222 66.578 79.089 102.75 1.226 1.859 2.074 4.315 3.788 5.447 11.247 7.429 11.079 17.677 10.893 30.093-0.985 65.644-0.586 131.31-0.535 196.97 0.011 14.109-0.478 28.763 17.619 33.51 0.47 0.123 0.828 0.672 1.238 1.022-1.071 0.268-2.15 0.802-3.21 0.765zm-0.46-304.95c-19.722-30.535-40.677-60.14-65.673-86.685-1.032-1.096-2.825-2.527-1.699-3.918 0.706-0.873 2.962-0.492 4.522-0.674 50.363 5.885 100.9 6.798 151.45 5.324 13.21-0.385 26.634-1.359 39.594-5.033 1.819-0.516 4.933-1.541 5.912 0.735 0.794 1.845-2.152 2.731-3.578 3.765-40.714 29.522-83.236 56.53-122.49 88.068-4.081 3.278-5.801 1.881-8.038-1.582zm301.37 371.02c10.772 9.068 20.005 19.606 28.637 30.679 1.286 1.65 3.955 3.231 2.703 5.6-1.188 2.248-4.02 0.965-6.119 1.17-33.656 3.292-67.414 1.056-97.803 1.874-30.407 0-57.503-0.172-84.593 0.128-6.296 0.07-9.291-1.099-8.708-8.226 1.036-12.656-1.397-25.502 1.803-38.06 0.803-3.15-1.843-8.12 2.485-9.188 4.749-1.171 10.746-2.326 14.815 1.081 9.981 8.359 19.86 5.655 31.273 3.26 30.33-6.367 61.197-7.008 91.895-2.257 9.252 1.433 16.524 7.972 23.612 13.939zm-76.637-73.621c2.758-2.83 4.399 1.806 6.641 2.922 1.107 0.551 2.101 1.401 3.013 2.257 2.193 2.06 7.657 3.079 6.768 5.092-1.357 3.074-6.135 0.682-8.859 1.341-1.774 0-3.061 0.171-4.285-0.035-2.59-0.436-7.068 1.437-7.345-1.568-0.302-3.255 1.669-7.549 4.067-10.009zm36.41-69.618c0.193-3.334 2.33-2.402 4.576-0.773 7.891 5.724 13.902 12.234 11.888 21.353-0.162 5.757-0.096 9.815-1.845 13.771-1.61 3.644-3.691 5.736-7.91 5.173-3.828-0.511-7.432-0.716-8.581-5.693-2.656-11.496 1.22-22.565 1.872-33.831zm17.376-162.57c6.835 29.086 4.353 58.874 4.763 88.413 0.075 5.417-0.045 10.837-0.036 16.256 0.024 15.956-0.813 17.117-15.717 21.595-3.743 1.125-13.355-7-13.231-11.767 0.249-9.53 0.2-19.054 0.797-28.606 0.986-15.766 0.563-31.802-3.586-47.131-4.803-17.747-25.173-23.135-38.187-10.872-3.44 3.241-4.906 7.159-4.93 11.885-0.053 10.52 1.268 20.967 1.702 31.422 2.217 53.365-10.012 103.89-31.61 152.4-6.276 14.093-15.67 22.399-32.572 20.336-10.365-1.265-21.01-0.234-36.455-0.234-27.535 0.298-59.924-1.279-92.279-3.724-1.428-0.108-2.826-0.61-4.237-0.929 1.264-0.692 2.496-1.45 3.796-2.064 10.659-5.031 13.577-14.212 13.579-25.041 0.013-68.216-0.023-136.43 0.167-204.65 0.025-9.18 1.169-18.362 1.905-27.534 0.456-5.683 4.629-8.67 8.692-11.867 38.832-30.551 80.489-57.149 120.44-86.13 13.639-9.893 26.877-20.471 42.276-27.716 1.712-0.805 3.281-1.947 5.036-2.622 7.852-3.019 13.014-1.497 17.227 6.937 22.646 45.337 40.86 92.291 52.457 141.64z\"/>")
			.append("<path d=\"m571.88 936.74c-5.474 0.614-9.815-1.109-14.041-3.568-19.482-11.338-38.672-23.126-60.519-29.876-10.853-3.353-15.477-13.581-13.45-25.353 1.51-8.771 9.473-14.918 20.225-15.68 8.837-0.626 16.932 2.116 24.854 5.501 16.387 7.002 31.669 16.112 47.075 24.971 5.279 3.035 10.164 6.659 13.341 11.996 4.416 7.418 4.781 15.244 0.386 22.647-3.997 6.732-10.036 10.588-17.871 9.362z\"/>")
			.append("<path d=\"m749.67 1262.2c-15.798 0.08-28.433-12.412-28.626-28.303-0.204-16.841 12.631-29.715 29.444-29.532 15.536 0.169 28.182 13.077 28.3 28.886 0.121 16.131-12.688 28.866-29.118 28.949z\"/>")
			.append("</svg>")
			.append(String.format("<p style=\"color:#666;\"><h1 class=\"shake\" style=\"margin-left: 15px; font-size: 200px;\">%s</h1></p>", statusCode))
			.append("</div>")
			.append(String.format("<span style=\"color:#666; font-size: 28px; font-style:italic; letter-spacing: 20px;\">%s</span>", errorMsg))
			.append("</div></div>");
	//builder.append("<script>document.body.style.background=\"#f5f5f5\";</script>");
	errorMap.put(errors[i++], builder.toString());
	builder.setLength(0);

	// 随机出现
	out.print(errorMap.get(errors[new java.security.SecureRandom().nextInt(errorMap.size())]));
%>
